package com.adtech.export.config;

/**
 * 配置基础设置
 * 
 * @author liulm
 * @author Puzhijun
 */
public abstract class BaseConfig {
	/** 默认字体大小 */
	public static final int FONT_DEFAULT_POINT_SIZE = 10;
	
	/** 默认位置 */
	private Align align = Align.LEFT;
	/** 是否要包装内容 */
	private boolean wrap = true;
	/** 是否显示粗体 */
	private boolean fontBold = false;
	/** 背景是否灰色 */
	private boolean backgroundGray = false;
	/** 字体大小 */
	private int fontPointSize = FONT_DEFAULT_POINT_SIZE;
	/** 是否显示边框 */
	private boolean border = true;

	
	
	/**
	 * 获得排列方式
	 * 
	 * @return
	 */
	public Align getAlign() {
		return align;
	}

	/**
	 * 配置排列方式
	 * 
	 * @param align
	 */
	public void setAlign(Align align) {
		if (align != null)
			this.align = align;
	}

	/**
	 * 设置排列方式 值为left,center,right
	 * 
	 * @param align
	 */
	@Deprecated
	public void setAlign(String align) {
		if (align != null) {
			String upperCaseAlign = align.trim().toUpperCase();
			if (upperCaseAlign.equals("LEFT")
					|| upperCaseAlign.equals("CENTER")
					|| upperCaseAlign.equals("RIGHT")) {
				this.align = Enum.valueOf(Align.class, upperCaseAlign);
			}
		}
	}

	/**
	 * 自动折行，默认true。
	 * 
	 * @return
	 */
	public boolean isWrap() {
		return wrap;
	}

	/**
	 * 设置自动折行。
	 * 
	 * @param wrap
	 */
	public void setWrap(boolean wrap) {
		this.wrap = wrap;
	}

	/**
	 * 字体设为粗体 默认false
	 * 
	 * @return
	 */
	public boolean isFontBold() {
		return fontBold;
	}

	/**
	 * 设置字体是否显示为粗体。
	 * 
	 * @param fontBold
	 */
	public void setFontBold(boolean fontBold) {
		this.fontBold = fontBold;
	}

	/**
	 * 背景是否为灰色，默认false。
	 * 
	 * @return
	 */
	public boolean isBackgroundGray() {
		return backgroundGray;
	}

	/**
	 * 设置背景是否显示为灰色，默认false;
	 * 
	 * @param backgroundGray
	 */
	public void setBackgroundGray(boolean backgroundGray) {
		this.backgroundGray = backgroundGray;
	}

	/**
	 * 字体大小(Point size 磅值) 默认10。
	 * 
	 * @return
	 */
	public int getFontPointSize() {
		return fontPointSize;
	}

	/**
	 * 设置字体大小
	 * 
	 * @param fontPointSize
	 *            (Point size 磅值)
	 */
	public void setFontPointSize(int fontPointSize) {
		if (fontPointSize > 0)
			this.fontPointSize = fontPointSize;
	}

	/**
	 * 是否显示边框 默认为true
	 * 
	 * @return
	 */
	public boolean isBorder() {
		return border;
	}

	/**
	 * 设置是否显示边框 默认为true。
	 * 
	 * @param border
	 */
	public void setBorder(boolean border) {
		this.border = border;
	}
}
